package com.kingyun.gpsinspection.purificationservice.facade.service.jsm.config;

import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.ConfigItem;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Employee;
import com.kingyun.gpsinspection.purificationservice.facade.model.jsm.Ztree;

import java.util.List;

public interface JsmConfigItemService {
    /**
     * 根据ID删除
     *
     * @param configItemId
     * @return
     */
    int deleteByPrimaryKey(String configItemId);

    /**
     * 添加
     *
     * @param record
     * @return
     */
    int insert(ConfigItem record);

    /**
     * 非空添加
     *
     * @param record
     * @return
     */
    int insertSelective(ConfigItem record);

    /**
     * 根据ID查询
     *
     * @param configItemId
     * @return
     */
    ConfigItem selectByPrimaryKey(String configItemId);

    /**
     * 非空修改
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(ConfigItem record);

    /**
     * 修改
     *
     * @param record
     * @return
     */
    int updateByPrimaryKey(ConfigItem record);

    /**
     * @Author 卢曼成
     * @Description 根据条件查询集合
     * @CreateDateTime 2017/5/2 8:25
     **/
    List<ConfigItem> selectByParamList(ConfigItem record);

    /**
     * @param list
     * @return int
     * @Author 卢曼成
     * @Description 批量添加
     * @CreateDateTime 2017/5/2 8:25
     */
    int insertList(List<ConfigItem> list);

    /**
     * @param list
     * @return int
     * @Author 卢曼成
     * @Description 批量修改
     * @CreateDateTime 2017/5/2 8:25
     */
    int updateList(List<ConfigItem> list);

    /**
     * @param list
     * @return int
     * @Author 卢曼成
     * @Description 批量逻辑删除
     * @CreateDateTime 2017/5/2 8:25
     */
    int deleteList(List<ConfigItem> list);

    /**
     * @param list
     * @return int
     * @Author 卢曼成
     * @Description 批量逻辑删除
     * @CreateDateTime 2017/5/2 8:25
     */
    int deleteByIdList(List<String> list);

    /**
     * @param param
     * @return int
     * @Author 卢曼成
     * @Description 添加修改逻辑
     */
    int saveOrUpdate(ConfigItem param);

    /**
     * @param employee
     * @return int
     * @Author 卢曼成
     * @Description org组织树
     */
    List<Ztree> configItemTree(Employee employee, String keyword) throws Exception;

    /**
     * 根据条件获取初始化数据
     *
     * @param param
     * @return List<ConfigItem>
     * @Author 卢曼成
     */
    List<ConfigItem> getInitData(ConfigItem param) throws  Exception;

    /**
     * 根据条件获取初始化数据
     *
     * @param opcIds
     * @return List<ConfigItem>
     * @Author 卢曼成
     */
    List<ConfigItem> getRefreshData(String opcIds) throws  Exception;
}